home *** CD-ROM | disk | FTP | other *** search
/ User's Choice Windows CD / User's Choice Windows CD (CMS Software)(1993).iso / win_a_d / 2dov10.zip / 2DO.MST < prev    next >
Text File  |  1993-02-25  |  7KB  |  249 lines

  1. '**************************************************************************
  2. '*                       2Do Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUGX ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST PATHHELP        = 1000
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL SETUPCAPTION$ ''The title for the bar
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL WINDIR$        ''Current Windows directory
  28. GLOBAL WINSYSDIR$   ''Current Windows\System directory
  29.  
  30. DECLARE SUB Install
  31. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  32. DECLARE FUNCTION WinExec LIB "kernel" (szCmdLine$, fuShow%) AS INTEGER
  33.  
  34.  
  35. INIT:
  36.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.     SETUPCAPTION$ = "2Do Setup"
  39.  
  40.     SetBitmap CUIDLL$, LOGO
  41.     SetTitle SETUPCAPTION$
  42.     SetAbout SETUPCAPTION$, "Copyright 1993 William P. Anderson"
  43.     i% = SetBeepingMode(1)
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.     szInf$ = GetSymbolValue("STF_CWDDIR") + "2DO.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  50.  
  51.     OPTCUR$ = "1"
  52.     DEST$ = "C:\2DO"
  53.  
  54.     i% = SetSizeCheckMode(scmOff)    '' could use scmIgnore; def = scmOnFatal
  55. '$IFDEF DEBUG
  56.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  57.     IF IsDriveValid(WinDrive$) = 0 THEN
  58.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  59.         GOTO QUIT
  60.     END IF
  61. '$ENDIF ''DEBUG
  62.  
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  66.     IF sz$ = "CONTINUE" THEN
  67.     UIPop 1
  68.     ELSE
  69.     GOSUB ASKQUIT
  70.     GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74. 'OPTION:
  75. '    SetSymbolValue "RadioDefault", OPTCUR$
  76. 'OPTL1:
  77. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  78. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  79. '
  80. '    IF sz$ = "CONTINUE" THEN
  81. '        UIPop(1)
  82. '    ELSEIF sz$ = "REACTIVATE" THEN
  83. '        GOTO OPTL1
  84. '    ELSE
  85. '        GOSUB ASKQUIT
  86. '        GOTO OPTION
  87. '    END IF
  88.  
  89.  
  90. GETPATH:
  91.     SetSymbolValue "EditTextIn", DEST$
  92.     SetSymbolValue "EditFocus", "END"
  93. GETPATHL1:
  94.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", PATHHELP, HELPPROC$)
  95.     DEST$ = GetSymbolValue("EditTextOut")
  96.  
  97.     IF sz$ = "CONTINUE" THEN
  98.     IF DoesDirExist(DEST$) = 0 THEN
  99.         i% = DoMsgBox(DEST$+" does not exist.  Do you want to create it?", SETUPCAPTION$, MB_TASKMODAL+MB_ICONQUESTION+MB_YESNO)
  100.         IF i% = IDNO THEN
  101.         GOTO GETPATHL1
  102.         END IF
  103.     END IF
  104.  
  105.         IF IsDirWritable(DEST$) = 0 THEN
  106.             GOSUB BADPATH
  107.             GOTO GETPATHL1
  108.         END IF
  109.         UIPop 1
  110.     ELSEIF sz$ = "REACTIVATE" THEN
  111.         GOTO GETPATHL1
  112.     ELSEIF sz$ = "BACK" THEN
  113.     UIPop 1
  114.     GOTO WELCOME
  115.     ELSE
  116.         GOSUB ASKQUIT
  117.         GOTO GETPATH
  118.     END IF
  119.  
  120.  
  121.     Install
  122.  
  123.  
  124. QUIT:
  125.     ON ERROR GOTO ERRQUIT
  126.  
  127.     IF ERR = 0 THEN
  128.         dlg% = EXITSUCCESS
  129.     ELSEIF ERR = STFQUIT THEN
  130.         dlg% = EXITQUIT
  131.     ELSE
  132.         dlg% = EXITFAILURE
  133.     END IF
  134. QUITL1:
  135.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  136.     IF sz$ = "REACTIVATE" THEN
  137.         GOTO QUITL1
  138.     END IF
  139.     UIPop 1
  140.  
  141.     IF dlg% = EXITSUCCESS THEN
  142.     IF sz$ = "CONTINUE" THEN
  143.         sz$ = "notepad.exe "+DEST$+"\intro.txt"
  144. '$IFDEF DEBUG
  145.         i% = DoMsgBox(sz$, "Exec Text", MB_OK)
  146. '$ENDIF
  147.  
  148.         IF WinExec(sz$, 1) < 32 THEN
  149.         i% = DoMsgBox("Introduction could not be displayed.  Open the introduction from the Program Manger", SETUPCAPTION$, MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION)
  150.         END IF
  151.     END IF
  152.     ENDIF
  153.  
  154.     END
  155.  
  156. ERRQUIT:
  157.     i% = DoMsgBox("The setup files are corrupted.  You will need to get a replacment.", SETUPCAPTION$, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  158.     END
  159.  
  160.  
  161.  
  162. BADPATH:
  163.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  164.     IF sz$ = "REACTIVATE" THEN
  165.         GOTO BADPATH
  166.     END IF
  167.     UIPop 1
  168.     RETURN
  169.  
  170.  
  171.  
  172. ASKQUIT:
  173.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  174.  
  175.     IF sz$ = "EXIT" THEN
  176.         UIPopAll
  177.         ERROR STFQUIT
  178.     ELSEIF sz$ = "REACTIVATE" THEN
  179.         GOTO ASKQUIT
  180.     ELSE
  181.         UIPop 1
  182.     END IF
  183.     RETURN
  184.  
  185.  
  186.  
  187. '**
  188. '** Purpose:
  189. '**     Builds the copy list and performs all installation operations.
  190. '** Arguments:
  191. '**     none.
  192. '** Returns:
  193. '**     none.
  194. '*************************************************************************
  195. SUB Install STATIC
  196.  
  197.     WinDir$ = GetWindowsDir()
  198.     WinSysDir$ = GetWindowsSysDir()
  199.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  200.     CreateDir DEST$, cmoNone
  201.  
  202. '   OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  203. '   WriteToLogFile ""
  204. '   WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  205. '   WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  206. '   WriteToLogFile ""
  207. '   WriteToLogFile "May have had to create the directory: " + DEST$
  208. '   WriteToLogFile ""
  209.  
  210.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  211.     AddSectionFilesToCopyList "WinFiles", SrcDir$, WinDir$
  212.     AddSectionFilesToCopyList "SysFiles", SrcDir$, WinSysDir$
  213.     CopyFilesInCopyList
  214.  
  215.     CreateProgmanGroup "2Do", "", cmoNone
  216.     ShowProgmanGroup  "2Do", 1, cmoNone
  217.     CreateProgmanItem "2Do", "2Do", DEST$+"\2do.exe", "", cmoOverwrite
  218.     CreateProgmanItem "2Do", "Introduction", DEST$+"\intro.txt", "", cmoOverwrite
  219.  
  220.     AddDos5Help "2DO", "A personal task manager for Microsoft Windows.", cmoNone
  221.  
  222.     CloseLogFile
  223.  
  224. END SUB
  225.  
  226.  
  227.  
  228. '**
  229. '** Purpose:
  230. '**     Appends a file name to the end of a directory path,
  231. '**     inserting a backslash character as needed.
  232. '** Arguments:
  233. '**     szDir$  - full directory path (with optional ending "\")
  234. '**     szFile$ - filename to append to directory
  235. '** Returns:
  236. '**     Resulting fully qualified path name.
  237. '*************************************************************************
  238. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  239.     IF szDir$ = "" THEN
  240.         MakePath = szFile$
  241.     ELSEIF szFile$ = "" THEN
  242.         MakePath = szDir$
  243.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  244.         MakePath = szDir$ + szFile$
  245.     ELSE
  246.         MakePath = szDir$ + "\" + szFile$
  247.     END IF
  248. END FUNCTION
  249.